// const { http } = require("../../utils/http");
import http from '../../utils/api' // 引入api接口管理文件
var _app = getApp();

// pages/my/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    statusBarHeight: wx.getSystemInfoSync()['statusBarHeight'],
    searchFocus:false,
    currentTab: 0,
    avatarUrl:null,
    page:1, // 默认页数
    pid:0, // 初始pid
    sub_id:0, // 初始子栏目id
    search: '', // 初始搜索
    sub_cate: [
    {//顶部状态按钮
      "title": "最新",
      "id": "0"
    },
    {
      "title": "热门",
      "id": "-1"
    },
    {
      "title": "精华",
      "id": "-2"
    }
    ],
   isChecked: 0 //判断是否选中
  },

  //绑定顶部状态切换的点击事件
  choiceStatus: function (e) {
    var that = this;
    var sub_id = e.currentTarget.id;
    var pid = that.data.currentTab;
    that.setData({
      isChecked: sub_id,
      article_list:[],
      show:0, // 重置加载效果
      page:1, // 重置分页
      pid:pid, // 顶级id
      sub_id:sub_id // 子id
    })
    // 获取文章列表
    this.getList({'pid':pid,'sub_id':sub_id,'page':that.data.page,'title':that.data.search});
  },

  // 预览图片
  previewImage: function(e){
      var that = this
      var key = e.currentTarget.dataset.key; // 当前条目索引
      var index = e.currentTarget.dataset.index; // 当前图片索引
      var pictures = that.data.article_list[key]['image']
      wx.previewImage({
        current: pictures[index],
        urls: pictures
      })
   },

   // 跳转详情
  gonggao:function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id='+e.currentTarget.dataset.news_id,
    })
  },

  // 回复跳转详情
  hui_fu:function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id='+e.currentTarget.dataset.news_id,
    })
  },

  // 详情页 跳转
  list_detalis:function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id='+e.currentTarget.dataset.news_id,
    })
  },

  fa_release:function(){
    wx.navigateTo({
      url: '../release_news/index',
    })
  },
  
  /**
   * tab 切换
   * @param {*} e 
   */
  swichNav: function (e) {
    var that = this; let current = e.target.dataset.current; // 选项值
    if (this.data.currentTab === current) {
        return false;
    } else {
      // 切换动作 切换子菜单
      that.setData({
        currentTab: current,
        article_list:[],
        show:0, // 重置显示效果
        page:1, // 重置分页
        isChecked: 0, // 重置默认项
        pid:current, // 顶级id
        sub_id:0 // 子id 全部
      })
      if(current == 0){  // 推荐
          that.setData({
              sub_cate:[{//顶部状态按钮
                "title": "最新",
                "id": "0"
              },
              {
                "title": "热门",
                "id": "-1"
              },
              {
                "title": "精华",
                "id": "-2"
              }]
          })
      }else{
        let parent_cate = that.data.parent_cate; // 上级分类
        for (var key in parent_cate) {
          if(current == parent_cate[key]['id']){  // id 和 key 相等 取出子分类
            that.setData({
              sub_cate:parent_cate[key]['sub'] || [],
              official_id:parent_cate[key]['official_id'] // 当前切换栏目的 是否官方栏目字段
            })
          }
        }
      }
      //获取文章列表
      this.getList({'pid':current,'sub_id':that.data.sub_id,'page':that.data.page,'title':that.data.search});
    }
  },
  clickSearchIcon:function(e){
    this.setData({
      searchFocus:true
    })
  },
  searchBindFocus:function(e){
    this.setData({
      searchFocus:true
    })
  },

  // 失去焦点搜索
  searchBindBlur:function(e){
    let that = this;
    // 搜索的时候重置分页
    this.setData({
      searchFocus:false,
      search:e.detail.value,
      page:1
    })
    this.getList({'pid':that.data.pid,'sub_id':that.data.sub_id,'title':that.data.search});
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function (options) {
    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      this.getTabBar().setData({
        selected: 0
      })
    }

    let that = this;
      // 获取轮播图
      http.getSlider({
        success:res=>{
          if(res.code == 1){ // 成功的情况
            that.setData({
               slider:res.data
            })
          }else{
            _app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })
      // 获取栏目
      http.getCate({
        success:res=>{
          if(res.code == 1){ // 成功的情况
            that.setData({
               parent_cate:res.data // 顶级分类
            })
          }else{
            _app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })
      //获取文章列表
      this.getList({'pid':that.data.pid,'sub_id':that.data.sub_id,'page':that.data.page,'title':that.data.search});
       // 获取置顶文章
       http.news_top_lists({
        success:res=>{
          if(res.code == 1){ // 成功的情况
            that.setData({
               top_list:res.data 
            })
          }else{
            _app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })
      wx.stopPullDownRefresh();
   },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
      let that = this;
      that.setData({
        page:1, // 重置分页
      })
      that.onShow();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
        let that=this
        that.setData({ 
          page: that.data.page + 1, //每次触发上拉事件，把page+1  
        });
        //调用分页查询数据的方法，返回新一页的数据为res
        if(that.data.show == 1){return false;}
        http.news_lists({
          data:{'pid':that.data.pid,'sub_id':that.data.sub_id,'page':that.data.page,'title':that.data.search},
          success:res=>{
            if(res.code == 1){ // 成功的情况
              var tmpArr = that.data.article_list;
               // 这一步实现了上拉加载更多
               tmpArr.push.apply(tmpArr,res.data);
               let show;
               if(res.data.length < 1){
                  show = 1 // 显示没有更多
               }else{
                  show = 0;
               }
               that.setData({
                article_list: tmpArr,
                show : show // 显示没有更多
               })
            }else{
              _app.tip(res.info);
            }
          },
          fail:err=>{
            console.log(err)
          }
        })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (e) {
    let news_id = e.target.dataset.news_id;
    let that = this;
    let param = {news_id:news_id}; // 提交参数
    // 请求分享接口 记录分享次数
    http.news_share({
      data:param,
      success:res=>{
        if(res.code == 1){
          for (var i = 0; i < that.data.article_list.length; i++) {
            if (that.data.article_list[i].id == news_id) {
              // 点赞成功时遍历msg对象并获取到当前节点的id
              that.setData({
                // 改变对象节点的分享数量
                ['article_list[' + i + '].share']:that.data.article_list[i]['share']+1 ,
              })
            }
          }
        }else{
          _app.tip(res.info)
        }
      },
      fail:err=>{
        console.log(err)
      }
    })
  },

  /**
   * 轮播跳转
   */
  jump:function(t){
      let data = t.currentTarget.dataset; //目标数据
      // 判断跳转方式
      switch(data.is_jump){
          case 0: // 本地内容跳转
            wx.navigateTo({
               url: '../info/index?id='+data.id,
            })        
          break;
          case 1://不跳转
            return false; 
          break;
          case 2: // 跳转文章
            wx.navigateTo({
              url: '../dynamic_details/index?news_id='+data.news_id,
            })          
          break;
          case 3: // 跳转外链
            wx.navigateTo({
              url: '../web/index?link='+data.link,
            })     
          break;
      }
  },
  /**
   * 获取文章列表
   * @param {*} param 
   */
  getList:function(param) {
    let that = this;
    http.news_lists({
      data:param,
      success:res=>{
        if(res.code == 1){ // 成功的情况
          let zanwu;
         if(res.data.length < 1){
           zanwu = 1;
         }else{
           zanwu = 0;
         }
         that.setData({
          article_list:res.data, // 顶级分类
          zanwu:zanwu
       })
        }else{
          _app.tip(res.info);
        }
      },
      fail:err=>{
        console.log(err)
      }
    })
  },
  /**
   * 点赞
   * @param {*} e 
   */
  giveLike:function(e){
      let data = e.currentTarget.dataset;let that = this; // 传来的数据
      let status = 0; // 默认点赞动作
      if(data.like_status ==  0){
        status = 1;  // 点过赞 再点就是取消点赞
      }
      let param = {news_id:data.news_id,status:status};
      http.news_like({
        data:param,
        success:res=>{
            _app.tip(res.info,1000); // 提示信息
            if(res.code == 1){
              for (var i = 0; i < that.data.article_list.length; i++) {
                if (that.data.article_list[i].id == data.news_id) {
                  // 点赞成功时遍历msg对象并获取到当前节点的id
                  that.setData({
                    // 改变对象节点的点赞状态
                    ['article_list[' + i + '].like_status']: status,
                  })
                  if(status == 0){ // 点赞+1 取消减1
                    that.setData({
                     ['article_list[' + i + '].like']: that.data.article_list[i]['like']+1,
                    })
                  }else{
                    that.setData({
                      ['article_list[' + i + '].like']: that.data.article_list[i]['like']-1,
                     })
                  }
                }
              }
            }
        },
        fail:err=>{
          console.log(err)
        }
      })
  },

  videometa:function (e) {
    var that = this;
    //获取系统信息
    wx.getSystemInfo({
      success (res) {
        //视频的高
        var height = e.detail.height;
        
        //视频的宽
        var width = e.detail.width;
 
        //算出视频的比例
        var proportion = height / width;

        //res.windowWidth为手机屏幕的宽。
        var windowWidth = res.windowWidth;
 
        let bl = 750/res.windowWidth; //该设备的rpx与px的比例

        let bl_width = windowWidth - windowWidth*0.08 - 60/bl; // 宽度的百分之92 减去 60rpx 转换的像素

        //算出当前宽度下高度的数值
        height = proportion * bl_width;
        that.setData({
          height,
          width:bl_width
        });
      }
    })
  },
})